home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 06 - 1990 / 06.02 Feb 90 / Jorg Code / DisplList.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-12-19  |  1.7 KB  |  71 lines  |  [TEXT/MPS ]

  1. class TDisplObj {
  2.   public:
  3.     virtual void Draw(Pattern)     {DebugStr("\pCall to TDisplObj::Draw");}
  4.     virtual void Erase()          {DebugStr("\pCall to TDisplObj::Erase");}
  5.     virtual void DoContent()      {DebugStr("\pCall to TDisplObj::DoContent");}
  6.     virtual void DoIdle() { /* do nothing by default*/ }
  7.   protected:
  8.     TDisplObj(Rect r);        // Only accessible to public descendants
  9.     Rect fBoundRect;
  10.   private:
  11.     Boolean HiLiteState;    // true : highlighted
  12. };
  13.  
  14. class TObjLink {
  15.     friend class TObjList;
  16.  
  17.     TObjLink*    fNext;    // the link to the next object
  18.     TDisplObj*    fmyObj;    // the object this link refers to
  19.  
  20.     // our constructor can take args for convenience;
  21.     // they default to nil.
  22.     TObjLink(TObjLink *n = nil, TDisplObj *v = nil);
  23.  
  24.   public:
  25.     inline TObjLink*    GetNext() { return fNext; };
  26.     inline TDisplObj*     GetmyObj() { return fmyObj; };
  27.     inline void            SetNext(TObjLink* aLink) { fNext = aLink; };
  28.     inline void         SetmyObj(TDisplObj* aObj) { fmyObj = aObj; };
  29. };
  30.  
  31. class TObjList {
  32.     TObjLink*    fHeader;    // the first link in our list
  33.     int            fNumObjs;    // the number of elements in the list
  34.  
  35. public:
  36.     TObjList(void);    // our constructor
  37.  
  38.     inline TObjLink* Header() { return fHeader; }
  39.     inline int        NumObjs() { return fNumObjs; }
  40.  
  41.     void    AddObj(TDisplObj* obj);
  42.     void    RemoveObj(TDisplObj* obj);
  43. };
  44.  
  45.  
  46. class TRoundRect : public TDisplObj {
  47.   public:
  48.     TRoundRect(Rect r);
  49.      virtual void Draw(Pattern);
  50.     virtual void Erase();
  51.   private:
  52.     short fOvalWidth, fOvalHeight;        // curvature of rounded corners 
  53. };
  54.  
  55.  
  56. class TOval : public TDisplObj {
  57.   public:
  58.     TOval(Rect r);
  59.     virtual void Draw(Pattern);
  60.     virtual void Erase();
  61. };
  62.  
  63.  
  64. class TRect : public TDisplObj {
  65.   public:
  66.     TRect(Rect r);
  67.     virtual void Draw(Pattern);
  68.     virtual void Erase();
  69. };
  70.  
  71.